import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @author mjy 短连接(建立连接——数据传输——关闭连接…建立连接——数据传输——关闭连接)
 * @date 2021/10/26
 * @description
 */
public class TCPThreadServer {

    private static final int PORT = 8883;

    public static void main(String[] args) {
        int count = 1;
        /**
         * 创建一个ServerSoket对象，并给他制定一个端口号
         * 通过这个端口号来监听客户端的连接，服务端接收客户端的连接请求时
         * 不间断的接受的，所以服务端的编程一般都永无止境的运行
         */
        try {
            ServerSocket socket = new ServerSocket(PORT);
            System.out.println("服务器已经启动。。。。");
            while (true){
                Socket s = socket.accept();
                System.out.println("共" + count + "次链接");
                System.out.println("现连接IP地址是："+s.getInetAddress());
                count++;
/** 获取当前的系统时间，与初始时间相减就是程序运行的毫秒数，除以1000就是秒数*/
                /**
                 * 服务端使用多线程方便多客户端的连接
                 * 这里将服务端的socket传给内部类，方便每个客户端都创建一个线程
                 */
                Thread t = new Thread(new TCPThreadServerSocket(s));
                t.start();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}
